" 1.函数定义
"用户定义的函数首字母大写,除非函数在脚本作用域或命名空间
function AnimalGreeting(animal)
    echo a:animal . ' says hello!'
endfunction

" 2.调用函数
call AnimalGreeting('cat')

" 3.函数可以有返回值
" 4.重定义函数会报错，在函数名后+！解决
function! AnimalGreeting(animal)
    return a:animal . ' says hello!'
endfunction

echo AnimalGreeting('dog')

" 5.1.可变参数函数
function! AnimalGreeting(...)
    echo a:1 . ' says hi to ' . a:2
endfunction

call AnimalGreeting('cat','dog')

" 5.2.获取所有参数列表
function ListArgs(...)
    echo a:000
endfunction

call ListArgs('cat','dog','parrot')

" 5.3.固定参数和可变参数结合起来使用
function! AnimalGreeting(animal,...)
    echo a:animal . ' say hi to ' . a:1
endfunction

call AnimalGreeting('cat', 'dog')
